package org.jsola.hr.dto.excel;

import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import org.jsola.core.dto.BaseDTO;

import java.util.Date;

import static org.jsola.hr.example.AttendPunchRecordExample.*;
import static org.jsola.hr.example.AttendPunchRecordExample.E_HIS_PUNCH_STATUS;
import static org.jsola.hr.example.AttendPunchRecordExample.E_HIS_PUNCH_TIME;
import static org.jsola.hr.example.AttendPunchRecordExample.E_HIS_STANDARD_TIME;
import static org.jsola.hr.example.AttendPunchRecordExample.E_IS_CALIBRATION;
import static org.jsola.hr.example.AttendPunchRecordExample.E_PUNCH_RANGE;
import static org.jsola.hr.example.AttendPunchRecordExample.E_PUNCH_SERIAL;
import static org.jsola.hr.example.AttendPunchRecordExample.E_PUNCH_SOURCE;
import static org.jsola.hr.example.AttendPunchRecordExample.E_WORK_TIME;
import static org.jsola.hr.example.AttendPunchRecordExample.M_HIS_STANDARD_TIME_MAX;
import static org.jsola.hr.example.AttendPunchRecordExample.M_PUNCH_SERIAL_MAX;
import static org.jsola.hr.example.AttendPunchRecordExample.N_HIS_PUNCH_STATUS;
import static org.jsola.hr.example.AttendPunchRecordExample.N_HIS_PUNCH_TIME;
import static org.jsola.hr.example.AttendPunchRecordExample.N_HIS_STANDARD_TIME;
import static org.jsola.hr.example.AttendPunchRecordExample.N_IS_CALIBRATION;
import static org.jsola.hr.example.AttendPunchRecordExample.N_PUNCH_RANGE;
import static org.jsola.hr.example.AttendPunchRecordExample.N_PUNCH_SERIAL;
import static org.jsola.hr.example.AttendPunchRecordExample.N_PUNCH_SOURCE;
import static org.jsola.hr.example.AttendPunchRecordExample.N_WORK_TIME;

/**
 *【考勤打卡记录】excel导入对象
 * @author zhr
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ApiModel(description = "【考勤打卡记录】excel导入对象")
public class AttendPunchRecordImportDTO extends BaseDTO {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(notes = N_PUNCH_RANGE, example = E_PUNCH_RANGE)
    @ExcelProperty(value = N_PUNCH_RANGE)
    private Integer punchRange;

    @ApiModelProperty(notes = N_WORK_TIME, example = E_WORK_TIME)
    @ExcelProperty(value = N_WORK_TIME)
    private Integer workTime;

    @ApiModelProperty(notes = N_PUNCH_SOURCE, example = E_PUNCH_SOURCE)
    @ExcelProperty(value = N_PUNCH_SOURCE)
    private Integer punchSource;
    /** 员工姓名 */
    @ApiModelProperty(notes = "员工姓名", example = "")
    @ExcelProperty(value = "员工姓名")
    private String empInfoName;

    /** 员工手机号 */
    @ApiModelProperty(notes = "员工手机号", example = "")
    @ExcelProperty(value = "员工手机号")
    private String phone;
    @ApiModelProperty(notes = N_IS_CALIBRATION, example = E_IS_CALIBRATION)
    @ExcelProperty(value = N_IS_CALIBRATION)
    private Boolean isCalibration;

    @ApiModelProperty(notes = N_HIS_STANDARD_TIME, example = E_HIS_STANDARD_TIME)
    @Length(max = 32, message = M_HIS_STANDARD_TIME_MAX)
    @ExcelProperty(value = N_HIS_STANDARD_TIME)
    private String hisStandardTime;

    /** 考勤日期(yyyy-MM-dd) */
    @ApiModelProperty(notes = "考勤日期(yyyy-MM-dd)", example = "")
    @ExcelProperty(value = "考勤日期(yyyy-MM-dd)")
    private String attendDate;
    @ApiModelProperty(notes = N_HIS_PUNCH_TIME, example = E_HIS_PUNCH_TIME)
    @ExcelProperty(value = N_HIS_PUNCH_TIME)
    private Date hisPunchTime;

    /** 上班打卡时间(HH:mm) */
    @ApiModelProperty(notes = "上班打卡时间(HH:mm)", example = "")
    @ExcelProperty(value = "上班打卡时间(HH:mm)")
    private String onWorkTime;

    /** 下班打卡时间 */
    @ApiModelProperty(notes = "下班打卡时间(HH:mm)", example = "")
    @ExcelProperty(value = "下班打卡时间(HH:mm)")
    private String offWorkTime;
    @ApiModelProperty(notes = N_PUNCH_SERIAL, example = E_PUNCH_SERIAL)
    @Length(max = 32, message = M_PUNCH_SERIAL_MAX)
    @ExcelProperty(value = N_PUNCH_SERIAL)
    private String punchSerial;

}

